package org.dey.serviceImpl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.commons.lang3.StringUtils;
import org.dey.constant.MessageConstant;
import org.dey.entity.Result;
import org.dey.mapper.QuestionnaireMapper;
import org.dey.pojo.PageVo;
import org.dey.pojo.Questionnaire;
import org.dey.service.QuestionnaireService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class QuestionnaireServiceImpl extends ServiceImpl<QuestionnaireMapper, Questionnaire> implements QuestionnaireService {

    @Autowired
    QuestionnaireMapper questionnaireMapper;

    @Override
    public PageVo<Questionnaire> queryQuestionnaire(Questionnaire questionnaire, int pageNum, int pagesize) {
        QueryWrapper<Questionnaire> queryWrapper = new QueryWrapper<Questionnaire>();
        if(StringUtils.isNotBlank(questionnaire.getName())){
            queryWrapper.like("name",questionnaire.getName());
        }

        PageHelper.startPage(pageNum, pagesize);

        List<Questionnaire> list = this.list(queryWrapper);

        PageInfo<Questionnaire> pageInfo = new PageInfo<Questionnaire>(list);


        PageVo<Questionnaire> pageVo = new PageVo<Questionnaire>();
        pageVo.setRows(pageInfo.getList());
        pageVo.setTotal(pageInfo.getTotal());

        return  pageVo;
    }

    @Override
    public Result insertQuestionnaire(Questionnaire questionnaire) {
        Result result = null;

        QueryWrapper<Questionnaire> queryWrapper = new QueryWrapper<Questionnaire>();
        queryWrapper.eq("name", questionnaire.getName());

        boolean one = this.save(questionnaire);

        if(one){
            result = new Result(true, MessageConstant.ADD_QUESTIONNAIRE_SUCCESS);
        }else {
            result = new Result(true, MessageConstant.ADD_QUESTIONNAIRE_FAIL);
        }

        return result;
    }

    @Override
    public Result deleteQuestionnaire(int id) {
        Result result = null;
        boolean b = this.removeById(id);
        if(b){
            result = new Result(true, MessageConstant.DELETE_QUESTIONNAIRE_SUCCESS);
        }else {
            result = new Result(true, MessageConstant.DELETE_QUESTIONNAIRE_FAIL);
        }
        return result;
    }

    @Override
    public Questionnaire queryQuestionnaireByid(int id) {
        return this.getById(id);
    }

    @Override
    public Result updateQuestionnaire(Questionnaire questionnaire) {
        Result result =null;
        boolean b = this.updateById(questionnaire);
        if(b){
            result = new Result(true, MessageConstant.EDIT_QUESTIONNAIRE_SUCCESS);
        }else {
            result = new Result(true, MessageConstant.EDIT_QUESTIONNAIRE_FAIL);
        }
        return result;
    }
}
